home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_exceptions.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  5KB  |  240 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. from test.test_support import TestFailed, TESTFN, unlink
  5. from types import ClassType
  6. import warnings
  7. import sys
  8. import traceback
  9. import os
  10. print '5. Built-in exceptions'
  11.  
  12. try:
  13.     import exceptions
  14.     reload(exceptions)
  15. except ImportError:
  16.     e = None
  17.     raise TestFailed, e
  18.  
  19.  
  20. def test_raise_catch(exc):
  21.     
  22.     try:
  23.         raise exc, 'spam'
  24.     except exc:
  25.         err = None
  26.         buf = str(err)
  27.  
  28.     
  29.     try:
  30.         raise exc('spam')
  31.     except exc:
  32.         err = None
  33.         buf = str(err)
  34.  
  35.     print buf
  36.  
  37.  
  38. def r(thing):
  39.     test_raise_catch(thing)
  40.     if isinstance(thing, ClassType):
  41.         print thing.__name__
  42.     else:
  43.         print thing
  44.  
  45. r(AttributeError)
  46. import sys
  47.  
  48. try:
  49.     x = sys.undefined_attribute
  50. except AttributeError:
  51.     pass
  52.  
  53. r(EOFError)
  54. import sys
  55. fp = open(TESTFN, 'w')
  56. fp.close()
  57. fp = open(TESTFN, 'r')
  58. savestdin = sys.stdin
  59.  
  60. try:
  61.     sys.stdin = fp
  62.     x = raw_input()
  63. except EOFError:
  64.     pass
  65. finally:
  66.     sys.stdin = savestdin
  67.     fp.close()
  68.  
  69. r(IOError)
  70.  
  71. try:
  72.     open('this file does not exist', 'r')
  73. except IOError:
  74.     pass
  75.  
  76. r(ImportError)
  77.  
  78. try:
  79.     import undefined_module
  80. except ImportError:
  81.     pass
  82.  
  83. r(IndexError)
  84. x = []
  85.  
  86. try:
  87.     a = x[10]
  88. except IndexError:
  89.     pass
  90.  
  91. r(KeyError)
  92. x = { }
  93.  
  94. try:
  95.     a = x['key']
  96. except KeyError:
  97.     pass
  98.  
  99. r(KeyboardInterrupt)
  100. print '(not testable in a script)'
  101. r(MemoryError)
  102. print '(not safe to test)'
  103. r(NameError)
  104.  
  105. try:
  106.     x = undefined_variable
  107. except NameError:
  108.     pass
  109.  
  110. r(OverflowError)
  111. warnings.filterwarnings('error', '', OverflowWarning, __name__)
  112. x = 1
  113. for dummy in range(128):
  114.     x += x
  115.  
  116. r(RuntimeError)
  117. print '(not used any more?)'
  118. r(SyntaxError)
  119.  
  120. try:
  121.     exec '/\n'
  122. except SyntaxError:
  123.     pass
  124.  
  125.  
  126. def ckmsg(src, msg):
  127.     
  128.     try:
  129.         compile(src, '<fragment>', 'exec')
  130.     except SyntaxError:
  131.         e = None
  132.         print e.msg
  133.         if e.msg == msg:
  134.             print 'ok'
  135.         else:
  136.             print 'expected:', msg
  137.     except:
  138.         e.msg == msg
  139.  
  140.     print 'failed to get expected SyntaxError'
  141.  
  142. s = 'while 1:\n    try:\n        pass\n    finally:\n        continue\n'
  143. if sys.platform.startswith('java'):
  144.     print "'continue' not supported inside 'finally' clause"
  145.     print 'ok'
  146. else:
  147.     ckmsg(s, "'continue' not supported inside 'finally' clause")
  148. s = 'try:\n    continue\nexcept:\n    pass\n'
  149. ckmsg(s, "'continue' not properly in loop")
  150. ckmsg('continue\n', "'continue' not properly in loop")
  151. r(IndentationError)
  152. r(TabError)
  153. r(SystemError)
  154. print '(hard to reproduce)'
  155. r(SystemExit)
  156. import sys
  157.  
  158. try:
  159.     sys.exit(0)
  160. except SystemExit:
  161.     pass
  162.  
  163. r(TypeError)
  164.  
  165. try:
  166.     [] + ()
  167. except TypeError:
  168.     pass
  169.  
  170. r(ValueError)
  171.  
  172. try:
  173.     x = chr(10000)
  174. except ValueError:
  175.     pass
  176.  
  177. r(ZeroDivisionError)
  178.  
  179. try:
  180.     x = 1 / 0
  181. except ZeroDivisionError:
  182.     pass
  183.  
  184. r(Exception)
  185.  
  186. try:
  187.     x = 1 / 0
  188. except Exception:
  189.     e = None
  190.  
  191.  
  192. class BadException:
  193.     
  194.     def __init__(self):
  195.         raise RuntimeError, "can't instantiate BadException"
  196.  
  197.  
  198.  
  199. def test_capi1():
  200.     import _testcapi as _testcapi
  201.     
  202.     try:
  203.         _testcapi.raise_exception(BadException, 1)
  204.     except TypeError:
  205.         err = None
  206.         (exc, err, tb) = sys.exc_info()
  207.         co = tb.tb_frame.f_code
  208.         if not co.co_name == 'test_capi1':
  209.             raise AssertionError
  210.         if not co.co_filename.endswith('test_exceptions' + os.extsep + 'py'):
  211.             raise AssertionError
  212.  
  213.     print 'Expected exception'
  214.  
  215.  
  216. def test_capi2():
  217.     import _testcapi
  218.     
  219.     try:
  220.         _testcapi.raise_exception(BadException, 0)
  221.     except RuntimeError:
  222.         err = None
  223.         (exc, err, tb) = sys.exc_info()
  224.         co = tb.tb_frame.f_code
  225.         if not co.co_name == '__init__':
  226.             raise AssertionError
  227.         if not co.co_filename.endswith('test_exceptions' + os.extsep + 'py'):
  228.             raise AssertionError
  229.         co2 = tb.tb_frame.f_back.f_code
  230.         if not co2.co_name == 'test_capi2':
  231.             raise AssertionError
  232.  
  233.     print 'Expected exception'
  234.  
  235. if not sys.platform.startswith('java'):
  236.     test_capi1()
  237.     test_capi2()
  238.  
  239. unlink(TESTFN)
  240.